// 这里的webpack配置会和公共的webpack.config.js进行合并
module.exports = {
  // 执行 npm run build 统一配置文件路径（本地访问dist/index.html需'./'）
  // NODE_ENV：Node.js 暴露给执行脚本的系统环境变量。通常用于确定在开发环境还是生产环境
  // publicPath: '/',
  publicPath: process.env.NODE_ENV === 'production' ? '' : '/',
  outputDir: 'dist', // 输出文件目录
  // assetsDir: 'static', // 放置静态资源
  // indexPath: 'index.html', // 可以不设置一般会默认
  productionSourceMap: false,// 是否在构建生产包时生成 sourceMap 文件，false将提高构建速度
  chainWebpack: config => {
    // 移除 prefetch 插件
    config.plugins.delete('prefetch');

    // 或者
    // 修改它的选项：
    // config.plugin('prefetch').tap(options => {
    //   options[0].fileBlacklist = options[0].fileBlacklist || [];
    //   options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/);
    //   return options
    // })

    // 压缩图片
    config.module.rule('images')
      .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
      .use('image-webpack-loader')
      .loader('image-webpack-loader')
      .options({ bypassOnDebug: true })
  },
  configureWebpack: config => {
    // 代码压缩
    //在configureWebpack中加入
    const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
    // 核心代码
    new UglifyJsPlugin({
      uglifyOptions: {
        //生产环境自动删除console
        compress: {
          drop_debugger: true,
          drop_console: true,
          pure_funcs: ['console.log']
        }
      },
      sourceMap: false,
      parallel: true
    })
  },
  lintOnSave: false,
  devServer: {
    // 配置代理
    // proxy: {
    //   "/api": {
    //     target: 'https://media.app.cctv.com',//在.env.development和.env.production配置过的数据，例如：http://localhost:8082/
    //     // 是否改变域名
    //     changeOrigin: true
    //   }
    // }
  }
};
